home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 August: Tool Chest / Dev.CD Aug 00 TC Disk 2.toast / pc / sample code / sound / record sound specific rate / headers / record_sound.h
Encoding:
C/C++ Source or Header  |  2000-06-23  |  1.6 KB  |  59 lines

  1. #ifndef __RECORD_SOUND__
  2. #define __RECORD_SOUND__
  3.  
  4. #include <SoundInput.h>
  5.  
  6. //So we can pass our A5 and other info to our PBWrite completion routines
  7. typedef struct myRecordingParamBlockRec {
  8.     ParamBlockRec            pb;
  9.     long                    myA5;
  10.     Boolean                    pbInUse,
  11.                             lastWrite;
  12. } myRecordingParamBlockRec, *myRecordingParmBlkPtr;
  13.  
  14. //Keep track of the info needed to record
  15. typedef struct {
  16.     long                    sanitycheck;
  17.     OSErr                    theErr;        //last error returned by SPBRecord or PBWrite
  18.     SPBPtr                    recordRec;
  19.     myRecordingParmBlkPtr    pb0,
  20.                             pb1;
  21.     Ptr                        recBuffer0,
  22.                             recBuffer1,
  23.                             resampledBuf0,
  24.                             resampledBuf1;
  25.     SoundConverter            sc;
  26.     SoundComponentData        inputFormat,
  27.                             outputFormat;
  28.     Fixed                    sampleRate;
  29.     OSType                    compression;
  30.     unsigned long            totalBytes,
  31.                             inputFrames;
  32.     long                    myA5,
  33.                             devBuffer,
  34.                             parID,
  35.                             soundRefNum,
  36.                             initialOffset;
  37.     short                    whichBuffer,
  38.                             fileRefNum,
  39.                             volRefNum,
  40.                             numChannels,
  41.                             sampleSize,
  42.                             AGC;
  43.     Str255                    nameString;
  44. } Vars, *VarsPtr;
  45.  
  46. OSErr            PrepairToRecordToDisk    (VarsPtr myVars, short refNum, short sampleSize, UnsignedFixed sampleRate, short numChannels, OSType compression, short AGC);
  47. OSErr            RecordToDisk             (VarsPtr myVars);
  48. pascal void        MyRecComp                (SPBPtr inParamPtr);
  49. OSErr            FinishRecording         (VarsPtr myVars);
  50.  
  51. #if GENERATINGCFM
  52. pascal void        MyPB0WriteComp            (myRecordingParmBlkPtr passedPB);
  53. pascal void        MyPB1WriteComp            (myRecordingParmBlkPtr passedPB);
  54. #else 
  55. pascal void        MyPB0WriteComp            (myRecordingParmBlkPtr passedPB:__a0);
  56. pascal void        MyPB1WriteComp            (myRecordingParmBlkPtr passedPB:__a0);
  57. #endif
  58.  
  59. #endif